package test;

import java.util.Scanner;

public class test01 {
    public static void main(String[] args) {
//        String s = "abbcbba";
        String s = "abbcbbaaaa";
        String result = check(s);
        System.out.println(result);
    }

    public static String check(String s) {
        // 最长的回文子串长度（初始化为0）
        int count = 0;
        // 最长回文子串的起始位置（初始化为0）
        int first = 0;
        //记录字符串长度
        int length = s.length();
        //字符数组
        char[] chars = s.toCharArray();

        for (int i = 0; i < length; i++) {
            for (int j = i; j < length; j++) {
                boolean flag = true;
                // 当前子串的长度
                int subLength = j - i + 1;
                // 判断是不是回文字符串
                for (int k = 0; k < subLength / 2; k++) {
                    if (chars[i + k]!= chars[j - k]) {
                        flag = false;
                        break;
                    }
                }
                // 如果是回文子串且长度大于已记录的最长长度，则更新记录
                if (flag && subLength > count) {
                    count = subLength;
                    first = i;
                }
            }
        }
        return s.substring(first, first + count);
    }
}